package de.java.shortys.myhome.api.model;

import java.util.List;

import org.springframework.orm.hibernate3.HibernateTemplate;

public abstract class AbstractDao<T> {

	private HibernateTemplate hibernateTemplate; // per Spring

	public void create(T object) {
		getHibernateTemplate().save(object);
	}

	public void delete(T object) {
		getHibernateTemplate().delete(object);
	}

	/**
	 * @return the hibernateTemplate
	 */
	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}

	public abstract List<T> read();

	/**
	 * @param hibernateTemplate
	 *            the hibernateTemplate to set
	 */
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}

	public void update(T object) {
		getHibernateTemplate().update(object);
	}

}
